It is well known that the lock manager portion of an operating system in a multiprocessing environment assigns and reassigns locks on resources on behalf of processes. This activity may result in a decrease in information processing throughput by frequent locking of a resource which has a very high concurrency requirement; that is, one in which a large number of processes are concurrently operable. This requires the lock manager to in effect manage the contention; that is, take processing time to lock, unlock, and resolve wait and resume conditions.
One important class of multiprocessing, multiprogramming systems is relational data base management systems. In a relational data base, data is perceived to exist in one or more tables. Each table consists of a specific number of columns and a number of unordered rows. Each column in a row is related in some way to the other columns. Significantly, a relational data base manager accesses data by referring to its content instead of its location or organization and storage. While the rows of a relational table have no fixed order, the order of the columns however will always be the order in which the columns are defined within the table definition.
A relational data base management system includes a query language as, for example, the IBM language SQL/DS described in "SQL/Data Systems Concepts and Facilities Manual", IBM Publication GH24-5065, copyright 1984. SQL (Structured Query Language) is a system data sublanguage including both a data definition component and a data manipulation component. The language is of a declarative form in which the commands create, alter, destroy, or manipulate objects leading to the relational data base manager to formulate an optimum instruction path to execute the command.
Because a relational data base manager is set in the context of concurrent processing, it utilizes facilities such as lock managers. In this regard, the current state of the art is represented by C. J. Date, "A Guide to DB2", Addison-Wesley Publishing Co., copyright 1984, pp. 191-195; C. J. Date, "An Introduction to Data Base Systems", Addison-Wesley Publishing Co., copyright 1986, pp. 422-427; and Chamberlin et al, "A History and Evaluation of System R", Communications of the Association of Computing Machinery, October 1981, pp. 632-645. These references collectively disclose lock escalation in a relational data base system, including a table-based lock escalation mechanism involved with the language SQL/DS. This technology adjusts locking granularity in response to accessing experience.
Generally, in multiprocessing systems, and data base management systems in particular, a problem arises in that there are alternative protocols for efficiently managing escalation of a locking protocol on a resource from a small granularity lock to a big granularity lock when the number of small granularity locks held on a resource reaches a specified limit.
The Chamberlin reference points out that when a user accumulates many small locks, they may be "traded" for a larger lockable unit. For example, locks on many records in a table might be traded for a lock on the table.